/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details. 
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */
package custom.ChangeSex;

import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.instancemanager.QuestManager;

/******************************
 * @author Gladicek           *
 * Custom Npc 'Change Sex'    *
 *****************************/
 
 public class ChangeSex extends Quest
 {
  // Npc
	private static final int NpcId = 50008; // Custom Npc
  // Item 
  private static final int ItemId = 57; // Festival Adena
  
  	public ChangeSex(int questId, String name, String descr)
	{
		super(questId, name, descr);
		addStartNpc(NpcId);
    addFirstTalkId(NpcId);
    addTalkId(NpcId);
	}
                
	@Override
	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
	{
		String htmltext = event;
		final QuestState st = player.getQuestState(getName());   

		if (event.equalsIgnoreCase("change_sex"))
		{
     if(st.getQuestItemsCount(ItemId) >= 1)
     { 
       st.takeItems(ItemId,1);     
  		 player.getAppearance().setSex(player.getAppearance().getSex() ? false : true);
			 player.sendMessage("Your gender has been changed!");
			 player.broadcastUserInfo();
			 player.decayMe();
		   player.spawnMe(player.getX(), player.getY(), player.getZ());
       return null;
     }
     else
      return "50008-no.htm";      
    } 
   return htmltext;
	}
  
	@Override
	public String onFirstTalk(L2Npc npc, L2PcInstance player)
	{
		QuestState st = player.getQuestState(getName());
		if (st == null)
		{
			Quest q = QuestManager.getInstance().getQuest(getName());
			st = q.newQuestState(player);
    }  
		return "50008.htm";
	} 
  
	public static void main(String[] args)
	{
		new ChangeSex(-1, "ChangeSex", "custom");
    _log.info("ChangeSex: Loaded (Created by Gladicek)");
	}
}            